package com.qianyu.versioncontrolcore.service;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.qianyu.versioncontrolcore.entity.base.BaseIdDTO;
import com.qianyu.versioncontrolcore.entity.bean.VersionConf;
import com.qianyu.versioncontrolcore.entity.dto.RegisterNumDto;
import com.qianyu.versioncontrolcore.entity.dto.VersionConfDto;
import com.qianyu.versioncontrolcore.entity.vo.VersionAreaVo;
import com.qianyu.versioncontrolcore.entity.vo.VersionConfVo;

import java.util.List;

public interface VersionConfService {
    /**
     * 新增版本管理
     */
    void saveVersion(VersionConfDto.VersionConfSaveDto dto);

    /**
     * 编辑版本管理
     */
    void updateVersion(VersionConfDto.VersionConfUpdateDto dto);

    /**
     * 删除版本
     */
    void deleteVersion(BaseIdDTO dto);

    /**
     * 获取详情
     */
    VersionConfVo.VersionConfigInfoVo getOne(BaseIdDTO dto);

    /**
     * 获取版本
     */
    List<VersionConfVo.VersionListVo> getVersionList();

    /**
     * 分页查询版本
     */
    Page<VersionConf> pageList(VersionConfDto.VersionConfPageDto dto);

    /**
     * 获取可以注册的版本
     */
    VersionAreaVo getVersion(String code);

    /**
     * 查询注册数量
     */
    Integer getRegisterNum(RegisterNumDto dto);

    void updateRedisCache(String version);

    /**
     * 注册成功回调
     *
     * @param version 版本号
     * @param adcode 城市编码
     * @param type    0-获取 1-自增
     * @return
     */
    Integer notifyRegister(String version,String adcode,Integer type);
}
